package com.sourcestruct.linearlist;


import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * @author: ZhouBert
 * @date: 2019/6/5
 * @description: 单链表数据结构(当出现 【 环 】 或者 【 下一个节点指向自己 】 的时候 ， 不能使用 lombok 的 @ ToString 注解 ， 因为会形成死循环 ！)
 * 单链表由于不具有随机访问的方式，只能通过从头到尾遍历的方式
 */
@Getter
@Setter
@ToString
public class SingleLinkedList {

	private int data;
	private SingleLinkedList next;

	public SingleLinkedList(int data, SingleLinkedList next) {
		this.data = data;
		this.next = next;
	}

	public SingleLinkedList(int data) {
		this.data = data;
	}

	/**
	 * 返回慢指针的下一个
	 *
	 * @return
	 */
	public SingleLinkedList getSlow() {
		return this.next;
	}

	/**
	 * 快指针
	 * @return
	 */
	public SingleLinkedList getFast() {
		return this.next.next;
	}

	//	@Override
//	public String toString() {
//		return String.valueOf(data);
//	}
}
